/*********************************************************************************
Organization 					: 				Georgia Institute of Technology
  
Institute 						:				Cognitive Computing Group(CCL)
 
Authors							: 				Manish Mehta 
 												
Class							:				AbstractedTrace
 
Function						: 				A class for holding the abstracted trace
****************************************************************************/
package behavioradaptation.analysisdata;

import java.util.List;
import java.util.Vector;

import trace.Trace;

public class AbstractedTrace {
	// Holds Information regarding plan failures
	Vector<PlanFailuresData> m_planFailuresList;
	// Holds Information regarding Idle Data
	Vector<IdleData> m_idleDataList;
	Vector<AttackData> m_attackDataList;
	// Holds Information regarding Kill Data List
	Vector<KillData> m_killDataList;
	// Holds Information regarding Self Resource List
	Vector <ResourceData> m_selfResourceDataList; 
	// Holds Information regarding Enemy resource Data
	Vector <ResourceData> m_enemyResourceDataList; 
	// Holds the information regarding self units
	Vector<List> m_selfUnitList;
	// Holds the information regarding enemy units
	Vector<List> m_enemyUnitList;
	Trace m_trace;
	public AbstractedTrace(Trace a_trace)
	{
		m_trace = a_trace;
		m_planFailuresList = new Vector<PlanFailuresData>();
		m_idleDataList = new Vector<IdleData> ();
		m_attackDataList = new Vector<AttackData> ();
		m_killDataList = new Vector<KillData> () ;
		m_selfResourceDataList = new Vector<ResourceData> ();
		m_enemyResourceDataList = new Vector<ResourceData> ();
		m_selfUnitList = new Vector<List> ();
		m_enemyUnitList = new Vector<List> ();
	}
	/*
	 * Helper Getter and Setters
	 */
	public Trace getTrace()
	{
		return m_trace;
	}
	public void setTrace(Trace a_trace)
	{
		m_trace = a_trace;
	}
	public Vector<PlanFailuresData> getPlanFailureList()
	{
		return m_planFailuresList;
	}
	public Vector<IdleData> getIdleData()
	{
		return m_idleDataList;
	}
	public Vector<AttackData> getAttackData()
	{
		return m_attackDataList;
	}
	public Vector<KillData> getKillData()
	{
		return m_killDataList;
	}
	public Vector<ResourceData> getSelfResourceData()
	{
		return m_selfResourceDataList;
	}
	public Vector<ResourceData> getEnemyResourceData()
	{
		return m_enemyResourceDataList;
	}
	public Vector<List> getSelfUnits()
	{
		return m_selfUnitList;
	}
	public Vector<List> getEnemyUnits()
	{
		return m_enemyUnitList;
	}
}
